package _10netty;

import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelOption;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioServerSocketChannel;

/**
 * @description:
 * @author: wang zhen
 * @create: 2022-08-05 14:43
 */
public class NettyServer {

    public static void run(){

        NioEventLoopGroup bossGroup = new NioEventLoopGroup(1);
        NioEventLoopGroup workerGroup = new NioEventLoopGroup(5);

        ServerBootstrap serverBootstrap = new ServerBootstrap();
        serverBootstrap
                .group(bossGroup, workerGroup)  // 配置线程组
                .channel(NioServerSocketChannel.class)  // 配置IO模型

                //option方法可以配置服务端的一些属性,backlog:设置等待队列的大小,服务器处理请求是按顺序处理的
                //同一时间只能处理一个客户端连接，同一时间的其他连接请求放在队列中等待处理
                .option(ChannelOption.SO_BACKLOG, 1024)
                .childHandler(new WorkChannelHandler());


        serverBootstrap.bind(8000);  // 绑定端口
    }

    public static void main(String[] args){
        run();
    }
}

